fix(core): simplify repo resolver contract - #1619
Merged
Merged
Conversation
Deploying agentv with
|
| Latest commit: |
0301a96
|
| Status: | ✅ Deploy successful! |
| Preview URL: | https://f194bdd4.agentv.pages.dev |
| Branch Preview URL: | https://fix-repo-resolver-contract.agentv.pages.dev |
christso
force-pushed
the
fix/repo-resolver-contract
branch
from
July 3, 2026 11:35
166c574 to
0301a96
Compare
christso
marked this pull request as ready for review
July 3, 2026 11:37
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Repo resolver scripts now choose only an acquisition path:
{"status":"handled","path":"..."}handles a repo and{"status":"skip"}falls through. AgentV rejects the oldhandled/source/type/originstdout shape instead of carrying compatibility aliases, and resolver output no longer advertises or rewrites a remote origin.Git resolver paths still go through AgentV clone, sparse checkout, commit resolution, ancestor walking, and detached checkout. Non-Git resolver paths are treated as static directory snapshots: AgentV copies the directory into
workspace.repos[].path, ignores Git-only fields for that repo, and restores resets by copying the same snapshot source again.Docs now describe the machine-local
repo_resolverscontract directly and remove the stale eval-levelworkspace.repos[].resolverrow.Related: Bead av-bp7z
Verification
bun test packages/core/test/evaluation/workspace/repo-manager.test.tsbun test packages/core/test/evaluation/validation/config-validator.test.ts packages/core/test/evaluation/validation/eval-validator.test.ts packages/core/test/evaluation/workspace-config-parsing.test.tsbun --filter @agentv/core typecheckbun --filter @agentv/core buildbun --filter @agentv/core testbun run buildbunx biome check packages/core/src/evaluation/workspace/repo-resolver.ts packages/core/src/evaluation/workspace/repo-manager.ts packages/core/test/evaluation/workspace/repo-manager.test.ts apps/web/src/content/docs/docs/next/guides/workspace-architecture.mdx docs/adr/0017-output-artifact-and-workspace-resolver-contract.mdgit diff --checkDogfood
Ran a temporary real CLI eval against
octocat/Hello-Worldusing a project-localrepo_resolversentry whose script emitted the new flat stdout contract. The eval materialized the repo through the resolver, cloned the returned local Git source, and a CLI target running inside the workspace verified bothHello World!andgit=true.Command:
AGENTV_HOME=/tmp/agentv-repo-resolver-dogfood.4eEQ53/agentv-home \ AGENTV_DATA_DIR=/tmp/agentv-repo-resolver-dogfood.4eEQ53/agentv-data \ bun apps/cli/src/cli.ts eval run \ /tmp/agentv-repo-resolver-dogfood.4eEQ53/project/evals/repo-resolver-dogfood.eval.yaml \ --target inspect_workspace \ --output /tmp/agentv-repo-resolver-dogfood.4eEQ53/run-2Result:
1/1passed, score100%,execution_status: ok. Run bundle:/tmp/agentv-repo-resolver-dogfood.4eEQ53/run-2.